﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Xml;
using System.Xml.Serialization;

namespace RecursosHumanos
{
    public partial class frmCidades : Form
    {
        WBGEntities bd = new WBGEntities();

        public frmCidades()
        {
            InitializeComponent();
        }

        private void frmFilme_Load(object sender, EventArgs e)
        {

            AtualizaGrid();
        }

        private void AtualizaGrid()
        {
            Cursor.Current = Cursors.WaitCursor;

            grd.DataSource = from x in bd.Cidade
                             select new { x.idCidade, x.nome, x.UF };

            if (grd.Rows.Count > 0)
            {
                tsbEditar.Enabled = true;
                tsbDeletar.Enabled = true;
            }
            else
            {
                tsbEditar.Enabled = false;
                tsbDeletar.Enabled = false;
            }

            FormataGrid();

            Cursor.Current = Cursors.Default;
        }

        private void FormataGrid()
        {
            grd.Columns[0].HeaderText = "ID";
            grd.Columns[1].HeaderText = "Nome";
            grd.Columns[2].HeaderText = "Sigla";
        }

        private void grd_Click(object sender, EventArgs e)
        {
            try
            {
                //grd.CurrentRow.Cells[0].ToolTipText = FilmeGenero.Find(Convert.ToInt32(grd.CurrentRow.Cells["genero"].Value.ToString()));
            }
            catch { }
        }

        private void tsbDeletar_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Deseja realmente excluir?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                    return;

                int id = Convert.ToInt32(grd.CurrentRow.Cells["idCidade"].Value);
                var reg = bd.Cidade.FirstOrDefault(x => x.idCidade == id);
                bd.DeleteObject(reg);
                bd.SaveChanges();
                AtualizaGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message, "Erro ao excluir", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tsbEditar_Click(object sender, EventArgs e)
        {
            try
            {
                int id = Convert.ToInt32(grd.CurrentRow.Cells["idCidade"].Value);
                var frm = new frmCidades_(Request.Alterar);
                frm.cidade = bd.Cidade.FirstOrDefault(x => x.idCidade == id);
                frm.ShowDialog();
                AtualizaGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message, "Erro ao alterar", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void grd_DoubleClick(object sender, EventArgs e)
        {
            tsbEditar_Click(sender, e);
        }

        private void frmCidades_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Escape)
            {
                tsbSair_Click(sender, new EventArgs());
            }
        }

        private void tsbSair_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            frmCidades_ frm = null;
            try
            {
                frm = new frmCidades_(Request.Inserir);
                frm.ShowDialog();
                AtualizaGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message, "Erro ao inserir", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (frm != null)
                    frm.Dispose();
            }
        }
    }
}
